Modern computer systems often include controllers, processors, memories and peripheral devices. Data is often required to be transmitted over buses connecting these components. An example of such a system is a local area network which includes a number of network stations. The network station typically includes a Media Access Control (MAC) layer network interface that .sends and receives data to a host processor via a peripheral component interconnect (PCI) interface.
Some network interfaces include an expansion bus interface for buffering data between the PCI interface and the MAC transmit and receive FIFOs. Specifically, this interface may be used to access a shared external memory device for storing additional transmit and receive data. However, attempts to access the expansion bus interface for storage or retrieval of transmit data or receive data may occur independently. Hence, attempts to access the same resource at the same time results in bus contention problems or bus deadlock problems since two independent activities are attempting to access the same resource via the same bus.